The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, the approaches described in this section may not be prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Printing technology has seen tremendous advancement in both functional variation and raw printing speed. Printing devices offering higher and higher page per minute (PPM) output are constantly being introduced into the marketplace. These printers also offer advanced printing and finishing options such as stapling, collating, double-sided printing, and choice of multiple paper sizes.
It is not uncommon for today's printers to print jobs that only a few years ago would have been outsourced to professional printers using printing presses. For example, documents comprising hundreds of pages and conforming to several print options may be printed on standard printing devices available to the general public. The complexity of a print job is only increased in a production printing environment where job settings can be extremely complicated.
Print job settings and specifications may be transmitted to a printer in many ways, such as in the print job header, print job body, a job ticket, web services messages, or directly to a printer via the Internet Printing Protocol (IPP). Each of these techniques may all contain job configuration information on how a user wants the document to be printed. These options may be referred to as job attributes. They may contain values regarding color mode, resolution, paper size, duplex and stapling. They may be created by different applications on the computer creating the print job, including applications which generate the document and the printer driver.
Problems arise where these job attributes may be in conflict; for example, the print job header may specify paper size “A4,” but the print job body may specify “letter” size and override the job header setting. The target printer might not support some job attributes; for example, a user may desire to staple an 80-page job, but the target printer might only be able to staple documents of up to 50 pages. Often, in the case where the printer cannot achieve the specified setting, the printer will apply a default setting to overwrite the user's settings.
One approach to dealing with these problems is to print a sample document and see which settings, if any, were applied. However, this approach can consume a large quantity of time and resources in the case of large, complicated jobs. Also, simply examining the finished product might not allow a user to discover which portion of the printing process is causing a problem.
Another approach is to use a “print preview” technique whereby a user may see the document on a display prior to printing. This approach is inadequate because many print options such as stapling cannot be ascertained via print preview. For example, the output of a print preview command cannot indicate whether the target printer is capable of stapling a 90-page document.
Another approach is to use a job ticket, which is a combination of all settings and options a user wants to apply to a job. Some printers accept job ticket data as one way of specifying job settings. However, this does not solve the problems described above, because while the job ticket defines what a user wants, a job ticket does not specify what the output will actually be.
Another approach is simply to allow the last job setting data that reaches the printer to control the output. This approach is inadequate for the reasons specified above with regard to waste of resources. This approach is inefficient if the output is not as the user intended.
Consequently, there is a need for a printing solution that is more suited for today's output devices. There is a need for a printing solution that enhances system performance.